nginx 配置
Nginx 配置
CentOS 安装nginx
1 | [vagrant@master ~]$ sudo cat >> /etc/yum.repos.d/nginx.repo<<EOF |
什么是 nginx ?
Nginx 是高性能的 HTTP 和反向代理的服务器,处理高并发能力是十分强大的, 能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数。
正向代理
需要在客户端配置代理服务器进行指定网站访问。
正向代理,是在用户端的。如你要访问谷歌浏览器地址,但是你是不能直接访问的,此时你可以通过一个代理服务器来帮助你访问。
此时公司肯定有电脑是可以连接外网的,那么将我们的网络连接配置到那台服务器上,那么我们就可以访问了,相当于我们通过公司那台服务器访问查阅资料。这就是正向代理。
正向代理:
1 |
反向代理
暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。
反向代理是作用在服务器端的,是一个虚拟ip(VIP)。对于用户的一个请求,会转发到多个后端处理器中的一台来处理该具体请求。
大型网站都有DNS(域名解析服务器),load balance(负载均衡器)等。
两者的对比图如下
反向代理配置:
1 | server { |
负载均衡
增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡。
好处就是缓解原先一个服务器的访问压力
负载均衡配置:
1 | vim /etc/nginx/nginx.conf |
负载均衡策略
模式 | 备注 |
---|---|
轮询 | 默认方式 |
weight | 权重方式 |
ip_hash | 依据ip分配方式 |
least_conn | 最少连接方式 |
fair(第三方) | 响应时间方式 |
url_hash(第三方) | 依据URL分配方式 |
Nginx负载均衡分配策略
轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,会自动剔除!
weight
weight代表权,重默认为1,权重越高被分配的客户端越多!
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
比如:
1 | upstream web.com { #这个是定义Tomcat服务的负载均衡 |
- ip_hash
- 每个请求按访问ip的hash解果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
1 | upstream web.com { #这个是定义Tomcat服务的负载均衡 |
- fair(第三方)
- 按照后端服务器的响应时间来分配,响应时间短的优先分配!
1 | upstream web.com { #这个是定义Tomcat服务的负载均衡 |
动静分离
动静分离是将网站静态资源(HTML,JavaScript,CSS,img等文件)与后台应用分开部署,提高用户访问静态代码的速度,降低对后台应用访问。
动静分离是指在web服务器架构中,将静态页面与动态页面或者静态内容接口和动态内容接口分开不同系统访问的架构设计方法,进而提升整个服务访问性能和可维护性。
1、api接口服务化:动静分离之后,后端应用更为服务化,只需要通过提供api接口即可,可以为多个功能模块甚至是多个平台的功能使用,可以有效的节省后端人力,更便于功能维护。
2、前后端开发并行:前后端只需要关心接口协议即可,各自的开发相互不干扰,并行开发,并行自测,可以有效的提高开发时间,也可以有些的减少联调时间
3、减轻后端服务器压力,提高静态资源访问速度:后端不用再将模板渲染为html返回给用户端,且静态服务器可以采用更为专业的技术提高静态资源的访问速度。
动静分离配置:
1 | server { |
虚拟主机
虚拟主机配置:
1 |
Keepalived+Nginx+Tomcat 主备模式
内容持续更新中….